package com.moli.iov.admin.model.vo.req;

import java.util.List;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

/**
 * <p>
 * 角色管理
 * </p>
 *
 * @author zql
 * @since 2019/9/6 16:33
 */
@Data
public class RoleVo  extends BaseVo {

  /**
   * 用户id
   */
  private Long userId;

  /**
   * 用户类型:1、平台用户 2、企业用户
   */
  private Integer userType;

  /**
   * 企业id
   */
  private Long companyId;

  /**
   * 企业名称
   */
  private String companyName;

  /**
   * 角色类型
   */
  private Integer roleType;
  
  /**
   * 角色id
   */
  @NotNull(message = "角色id不能为空", groups = {Update.class, Set.class, GetRolePermissions.class})
  private Long roleId;

  /**
   * 权限集合
   */
  @NotEmpty(message = "权限不能为空", groups = {Set.class})
  private List<Long> permissionIds;

  /**
   * 角色名称
   */
  @Length(min = 2, max = 10, message = "角色角色名称长度为2至10个字符", groups = {Save.class, Update.class})
  @NotEmpty(message = "角色名称不能为空", groups = {Save.class, Update.class})
  private String roleName;

  /**
   * 角色描述
   */
  @Length(min = 2, max = 20, message = "角色描述长度为2至20个字符", groups = {Save.class})
  @NotEmpty(message = "角色描述不能为空", groups = {Save.class})
  private String memo;

  /**
   * 角色状态:1、启用 0、禁用
   */
  @NotNull(message = "角色状态不能为空", groups = {Save.class, Update.class})
  private Integer status;

  public interface Save{}

  public interface Update{}

  public interface Set{}

  public interface GetRolePermissions{}
}
